package com.icetech.eom.dao.tx;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.icetech.eom.domain.sys.User;
import com.icetech.eom.domain.tx.dto.UserDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author wangzw
 * @since 2018-11-12
 */
public interface UserDao extends BaseMapper<User> {
    /**
     * 根据用户id查询所有权限
     * @param userId
     * @return
     */
    List<String> queryAllPerms(Long userId);

    /**
     * 获取用户的列表信息
     * @param searchKey
     * @param userType
     * @return
     */
    List<UserDto> selectBySearchKey(@Param("searchKey") String searchKey, @Param("userType") Integer userType,@Param("orgId") Long orgId);

    /**
     * 获取用户
     * @param userName
     * @return
     */
    User selectByUserName(@Param("userName") String userName);

    /**
     * 获取开发者账号的信息
     * @param username
     * @return
     */
    User findDeveloperByName(@Param("userName") String username);

    /**
     * 获取所有的开发者账号信息
     * @return
     */
    List<User> findAllDeveloper();

    /**
     * 获取当前平台登录的用户(超级管理员和内部账号才能登录)
     * @param userName
     * @return
     */
    User selectByLoginUserByName(@Param("userName") String userName);

    List<User> getOperatersByDev(@Param("devUserId") Long devUserId);

    List<User> selectByCustomId(@Param("customId") Long customId);
    /**
     * 获取当前客户端登录的用户(注册用户 子用户 管理员 客户管理员都可以登录)
     * @param userName
     * @return
     */
    User selectByClientUserByName(@Param("userName") String userName);
}
